home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - DOS Part 2
/
DOS028.dsk
/
STARTREK II.int
< prev
next >
Wrap
Text File
|
2012-02-16
|
5KB
|
114 lines
10 DIM C$(6),D$(15)
15 CALL (-936):PRINT "PROGRAM STARTREK":PRINT
20 Q=640:GOSUB 3000
22 S=704
24 D$=" * >B<>K<>E<"
30 INPUT "TYPE A RANDOM NUMBER (1-999) ",R
40 FOR J=1 TO R:C= RND (256):NEXT J
50 B=Q:GOSUB 1100
60 S1=75:N=S1:V=1:L=10:GOSUB 1200
70 B1=2:N=B1:V=10:L=20:GOSUB 1200
80 K1=7:N=K1:V=20:L=40:GOSUB 1200
90 T=15:GOSUB 1300:EQ= RND (4096):GOSUB 1400:GOSUB 1000
110 PRINT :INPUT "ENTER A COMMAND ",C:IF C>-1 AND C<6 THEN GOTO 100*C+200:GOSUB 3000:GOTO 110
200 INPUT "VECTOR ",X,Y:X0=X0+X:Y0=Y0+Y:E1=E1-ABS (X)-ABS (Y)
210 IF X0<0 OR X0>63 OR Y0<0 OR Y0>63 THEN 250
220 E0=E0+X+64*Y:Q1=Q0:S1=S0:GOSUB 1400:IF Q0=Q1 THEN 255
230 E1=E1-25:T=T-1:GOSUB 1000:GOSUB 1400:IF T>=0 THEN 260
240 C$="TIME":GOTO 980
250 C$="GALAXY":GOTO 980
255 POKE S+S1,0:GOSUB 1050
260 GOSUB 1800:IF B2=0 THEN 290:IF ABS (X6-X2)+ABS (Y6-Y2)#1 THEN 290
270 PRINT "-DOCKED-":GOSUB 1300:B1=B1-1:B2=0
280 POKE Q+Q0, PEEK (Q+Q0)-10: POKE S+X6+8*Y6,0:GOTO 110
290 IF K2#0 THEN GOSUB 550:GOTO 110
300 CALL (-936):C$="SHORT":GOSUB 350:GOSUB 2000:GOTO 110
350 PRINT C$;" RANGE SENSOR SCAN ";:GOSUB 360:RETURN
360 PRINT "FOR QUADRANT ";X1;",";Y1:RETURN
400 C$="LONG":GOSUB 350:N=3:GOSUB 880
410 FOR Y=Y1+1 TO Y1-1 STEP -1:F2=0:IF Y<0 OR Y>7 THEN F2=1:GOSUB 470:GOSUB 480
420 FOR X=X1-1 TO X1+1:F1=0:IF X<0 OR X>7 THEN F1=1
430 IF F1=0 AND F2=0 THEN 440:PRINT C$:GOTO 460
440 Q9=X+8*Y:GOSUB 1500: POKE Q+Q9,C9+40:PRINT "! ";K2;B2;S2;" ";
460 NEXT X:PRINT "!":GOSUB 480:NEXT Y:GOSUB 470:GOSUB 890:GOTO 110
470 C$="+-----":GOSUB 1600:RETURN
480 C$="! ":GOSUB 1600:RETURN
500 IF K2=0 THEN 690:GOSUB 790:PRINT "ENERGY ";E1:INPUT "FIRE ",C:IF C<1 THEN 110
520 E1=E1-C:GOSUB 1800:K5=K5-C/R:IF K5>0 THEN 530:GOSUB 1900:GOTO 110
530 GOSUB 550:GOTO 500
550 J5=K5/5:K5=K5-J5:E1=E1-J5/R:PRINT J5/R;"UNITS OF PHASER DAMAGE":GOSUB 1800:RETURN
600 IF K2=0 THEN 690:IF E2#0 THEN 610:PRINT "NO MORE TORPEDOES":GOTO 110
610 E2=E2-1:IF R> RND (15) THEN 640:GOSUB 1900:GOTO 110
640 PRINT "YOU MISSED!":GOSUB 550:GOTO 110
690 PRINT "NOTHING TO SHOOT AT!":GOTO 110
700 INPUT "COMPUTER REQUEST ",C:IF C=0 THEN 800
705 IF C=1 THEN GOSUB 3000:IF C=1 THEN 110
710 PRINT "STATUS REPORT:":PRINT
720 GOSUB 790:PRINT "KLINGONS=";K1
730 GOSUB 790:PRINT "STARDATES=";T
740 GOSUB 790:PRINT "STARBASES=";B1
750 GOSUB 790:PRINT "TORPEDOES=";E2
760 GOSUB 790:PRINT "ENERGY=";E1
770 GOTO 110
790 PRINT :PRINT "REMAINING ";:RETURN
800 PRINT "GALACTIC MAP ";:GOSUB 360:C$=" ---":N=8
810 GOSUB 880:FOR Y=7 TO 0 STEP -1:GOSUB 1600
820 FOR X=0 TO 7:Q9=X+8*Y:GOSUB 1500:P= PEEK (Q+Q9)
830 IF P>39 THEN 840:PRINT " ";:GOTO 850
840 PRINT " ";K2;B2;S2;
850 NEXT X:PRINT
860 NEXT Y:GOSUB 1600:GOSUB 890:GOTO 110
880 B8=B2:K8=K2:RETURN
890 B2=B8:K2=K8:RETURN
980 PRINT :PRINT "-- OUT OF ";C$;" --"
990 PRINT "YOU LEFT ";K1;" KLINGONS ":END
1000 B=S:GOSUB 1100:Q9=Q0:GOSUB 1500: POKE Q+Q9,C9+40
1010 N=S2:V=1:L=2:GOSUB=1200
1020 N=K2:V=3:L=4:GOSUB 1200:K5=100:Y5=I/8:X5=I-8*Y5
1030 N=B2:V=2:L=3:GOSUB 1200:Y6=I/8:X6=I-8*Y6
1035 C$="GREEN":IF K2#0 THEN C$="RED":PRINT :PRINT "STARDATE: ";3278-T;", CONDITION: ";C$
1040 PRINT "QUADRANT ";X1;",";Y1;" - SECTOR ";X2;",";Y2
1050 P= PEEK (S+S0): POKE S+S0,4:IF P=0 THEN RETURN
1060 PRINT :PRINT "*** COLLISION WITH A ";
1070 IF P=1 THEN PRINT "STAR";:IF P=2 THEN PRINT "STARBASE";:IF P=3 THEN PRINT "KLINGON";
1080 PRINT " ***":IF P=3 THEN K1=K1-1:GOTO 990
1100 FOR K=0 TO 63: POKE B+K,0:NEXT K:RETURN
1200 IF N=0 THEN RETURN :FOR K=1 TO N
1210 I= RND (64):P= PEEK (B+I):IF P+V>=L THEN 1210: POKE B+I,P+V:NEXT K:RETURN
1300 E1=500:E2=3:RETURN
1400 Y0=E0/64:X0=E0-64*Y0:Y1=Y0/8:X1=X0/8:Y2=Y0-8*Y1:X2=X0-8*X1
1410 Q0=X1+8*Y1:S0=X2+8*Y2:R=ABS (X5-X2)+ABS (Y5-Y2):RETURN
1500 C9= PEEK (Q+Q9):IF C9>=40 THEN C9=C9-40
1510 S2=C9-10*(C9/10):K2=C9/20:B2=(C9-S2-20*K2)/10:RETURN
1600 FOR J=1 TO N:PRINT C$;:NEXT J:PRINT C$(1,1):RETURN
1800 IF E1>0 THEN RETURN
1810 C$="ENERGY":GOTO 980
1900 PRINT "*** BOOM ***":K1=K1-1:K2=0: POKE Q+Q0, PEEK (Q+Q0)-20: POKE S+X5+8*Y5,0
1910 IF K1 THEN RETURN :PRINT :PRINT "MISSION ACCOMPLISHED!":END
2000 C$="+---":N=8:GOSUB 1600
2010 FOR Y=7 TO 0 STEP -1:FOR X=0 TO 7
2020 P=3* PEEK (S+X+Y*8)+1
2021 IF X=0 THEN PRINT "!";
2022 IF X#0 THEN PRINT " ";
2024 PRINT D$(P,P+2);
2030 NEXT X:PRINT "!":IF Y=0 THEN 2040:PRINT "+";:TAB 33:PRINT "+"
2040 NEXT Y:GOSUB 1600:RETURN
3000 REM *** LIST OF INSTRUCTIONS
3010 PRINT :PRINT "YOUR COMMANDS ARE:":PRINT
3015 PRINT "0 MOVE TO ANOTHER SECTOR"
3016 PRINT " X,Y"
3017 PRINT " X=# SECTORS TO RIGHT"
3018 PRINT " Y # SECTORS UP"
3019 PRINT " NEGATIVE NUMBERS MEAN LEFT OR DOWN (0,0=BOTTOM,LEFT)"
3020 PRINT "1 SHORT RANGE SCAN"
3030 PRINT "2 LONG RANGE SCAN"
3040 PRINT "3 FIRE PHASERS"
3050 PRINT "4 FIRE TORPEDOES"
3060 PRINT "5 CONSULT COMPUTER"
3070 PRINT " 0 GET CUMULATIVE MAP"
3080 PRINT " 1 GET INSTRUCTIONS"
3090 PRINT " 2 THRU 9 GET SHIP STATUS"
3980 PRINT
3990 RETURN
32767 REM BY R.J. BISHOP